package demo7;

class OutClass2 {
    private int n1 = 10;
    public int n2 = 20;
    public static int n3 = 30;

    public void menth() {
        System.out.println("menth被执行了");
    }
    public static void func() {
        System.out.println("func被执行了");
    }

    //实例内部类
    class InnerClass2 {
        private int n4 = 4;
        public int n5 = 5;
        public static int n6  =6;
        public int n2 = 2;

        public void test() {
            System.out.println("test被执行了");
            //实例内部类当中，所有外部类的成员，都可以访问
            System.out.println(n1);
            //如果外部类和内部类有相同的成员名的话，优先访问内部成员
            System.out.println(n2);
            //那么我们要如何才能访问外部类成员呢，在成员名相同的情况下
            //用 外部类名.this.成员名
            System.out.println(OutClass2.this.n2);
            System.out.println(n3);
            System.out.println(n4);
            System.out.println(n5);
            System.out.println(n6);

        }
    }
}
public class Test2 {
    public static void main(String[] args) {
        OutClass2 outClass2 = new OutClass2();
        OutClass2.InnerClass2 innerClass2 =
                outClass2.new InnerClass2();
        innerClass2.test();
    }
}
